package editorsvg.editor.comandos;

import editorsvg.editor.documento.ConjuntoElementos;
import editorsvg.editor.documento.Documento;
import editorsvg.editor.documento.ElementoInstanciaSimbolo;
import editorsvg.editor.documento.RestauradorPosicionElementos;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Jorge Berjano
 */
public class ComandoConvertirEnSimbolo implements Comando {

    private Documento documento;
    private ConjuntoElementos elementos;
    private String nombre;
    private RestauradorPosicionElementos restaurador;
    private ElementoInstanciaSimbolo instanciaSimbolo;

    public ComandoConvertirEnSimbolo(Documento documento, ConjuntoElementos elementos, String nombre) {
        this.documento = documento;
        this.elementos = elementos;
        this.nombre = nombre;
        restaurador = new RestauradorPosicionElementos(this.documento, this.elementos);
    }

    @Override
    public void hacer() {
        instanciaSimbolo = documento.convertirEnSimbolo(elementos, nombre);
    }

    @Override
    public void deshacer() {
        documento.borrarElemento(instanciaSimbolo);
        documento.borrarSimbolo(nombre);
        restaurador.restaurar();
    }
}
